home *** CD-ROM | disk | FTP | other *** search
/ JCSM Shareware Collection 1993 November / JCSM Shareware Collection - 1993-11.iso / cl720 / sst115j.lzh / SSTFOS.H < prev    next >
C/C++ Source or Header  |  1992-05-20  |  9KB  |  174 lines

  1. /* ------------------------------------------------------------------------ */
  2. /*                                 sstfoss.c                                */
  3. /*                                                                          */
  4. /*                   Revision 5  FOSSIL interface layer                     */
  5. /*      CopyRight (C) 1991,1992  Steven Lutrov.   All rights reserved.      */
  6. /* ------------------------------------------------------------------------ */
  7.  
  8. #define F_SIGNATURE     0x1954
  9. #define F_SETDTR        0x0001
  10. #define F_RESETDTR      0x0000
  11. #define F_NULL          0xFFFF
  12.  
  13.  
  14. /* ------------------------------------------------------------------------ */
  15. /*                           Port Status flags                              */
  16. /* ------------------------------------------------------------------------ */
  17. #define    F_RXCHARS    0x0100        /* Characters in input buffer */
  18. #define    F_RXOVER    0x0200        /* Receive buffer overrun */
  19. #define    F_MASK        0x0008        /* Bits always set */
  20. #define    F_TXCHARS    0x2000        /* Transmit buffer not full */
  21. #define    F_TXEMPTY    0x4000        /* Transmit buffer is empty */
  22. #define    F_CARRIER    0x0080        /* Carrier detect is high */
  23.  
  24. /* ------------------------------------------------------------------------ */
  25. /*                               Port IDs                                   */
  26. /* ------------------------------------------------------------------------ */
  27. #define F_COM1        0x0000          /* Com port 1 */
  28. #define F_COM2        0x0001          /* Com port 2 */
  29. #define F_COM3        0x0002          /* Com port 3 */
  30. #define F_COM4        0x0003          /* Com port 4 */
  31. #define F_CONSOLE    0x00FF          /* Route port to console */
  32.  
  33. /* ------------------------------------------------------------------------ */
  34. /*                              Baud Rates                                  */
  35. /* ------------------------------------------------------------------------ */
  36. #define F_B300          0x0040          /*    300 baud */
  37. #define F_B600          0x0060          /*    600 baud */
  38. #define F_B1200         0x0080          /*   1200 baud */
  39. #define F_B2400         0x00a0          /*   2400 baud */
  40. #define F_B4800         0x00c0          /*   4800 baud */
  41. #define F_B9600         0x00e0          /*   9600 baud */
  42. #define F_B19200        0x0000          /*  19200 baud */
  43. #define F_B38400        0x0020          /*  38400 baud */
  44. #define F_B57600        0x0100          /*  57600 baud */
  45. #define F_B115200       0x0120          /* 115200 baud */
  46. #define F_BMASK         0x01E0          /* Mask for baud rate */
  47.  
  48.  
  49. /* ------------------------------------------------------------------------ */
  50. /*                            Character Framing                             */
  51. /* ------------------------------------------------------------------------ */
  52. #define F_PMASK         0x0018          /* Mask for parity bits */
  53. #define F_NOPARITY      0x0000          /* No parity */
  54. #define F_SPCPARITY     0x0010          /* Space/mark parity */
  55. #define F_ODDPARITY     0x0008          /* Odd parity */
  56. #define F_EVENPARITY    0x0018          /* Even parity */
  57.  
  58. #define F_SMASK         0x0004          /* Stop bits mask */
  59. #define F_STOP1         0x0000          /* 1 stop bit */
  60. #define F_STOP2         0x0004          /* 2 stop bits */
  61.  
  62. #define F_BITMASK       0x0003          /* Bit mask */
  63. #define F_BITS5         0x0000          /* 5 data bits */
  64. #define F_BITS6         0x0001          /* 6 data bits */
  65. #define F_BITS7         0x0002          /* 7 data bits */
  66. #define F_BITS8         0x0003          /* 8 data bits */
  67.  
  68.  
  69. #define F_NORMAL        (F_BITS8|F_STOP1|F_NOPARITY)
  70. #define F_UNIX          (F_BITS7|F_STOP1|F_EVENPARITY)
  71. #define F_8N1           (F_BITS8|F_STOP1|F_NOPARITY)
  72. #define F_8N2           (F_BITS8|F_STOP2|F_NOPARITY)
  73. #define F_7O1           (F_BITS7|F_STOP1|F_ODDPARITY)
  74. #define F_7E1           (F_BITS7|F_STOP1|F_EVENPARITY)
  75. #define F_7N1           (F_BITS7|F_STOP1|F_NOPARITY)
  76. #define F_7O2           (F_BITS7|F_STOP2|F_ODDPARITY)
  77. #define F_7E2           (F_BITS7|F_STOP2|F_EVENPARITY)
  78. #define F_7N2           (F_BITS7|F_STOP2|F_NOPARITY)
  79.  
  80. /* ------------------------------------------------------------------------ */
  81. /*                           Flow Control flags                             */
  82. /* ------------------------------------------------------------------------ */
  83. #define    F_LOCXON    0x0001        /* Enables local Xon/Xoff */
  84. #define    F_LOCCTS    0x0002        /* Enables local Cts/Dte */
  85. #define    F_REMXON    0x0008        /* Enables remove Xon/Xoff */
  86. #define F_XONOFF    0x0000        /* Disables all flow control */
  87.  
  88.  
  89. /* ------------------------------------------------------------------------ */
  90. /*                            Break detect flags                            */
  91. /* ------------------------------------------------------------------------ */
  92. #define    F_BRK_ON    0x0001        /* Enable ^C/^K checking */
  93. #define    F_BRK_OFF    0x0000        /* Disable ^C/^K checking */
  94. #define    F_SRELEASE    0x0002        /* Force Xoff transmitter */
  95.  
  96. /* ------------------------------------------------------------------------ */
  97. /*                           FOSSIL status bits                             */
  98. /* ------------------------------------------------------------------------ */
  99. #define F_DCD        (0x0080)
  100. #define F_RDA        (0x0100)
  101. #define F_OVRN        (0x0200)
  102. #define F_THRE        (0x2000)
  103. #define F_TSRE        (0x4000)
  104.  
  105. /* ------------------------------------------------------------------------ */
  106. /*                                 macros                                   */
  107. /* ------------------------------------------------------------------------ */
  108. #define    fcarrier(p)    (fstatus(p) & F_CARRIER)
  109.  
  110. /* ------------------------------------------------------------------------ */
  111. /*                      Fossil information structures                       */
  112. /* ------------------------------------------------------------------------ */
  113. struct finfo {
  114.     char maxfunc;         /* Maximum function call supported */
  115.     char revision;         /* FOSSIL revision number */
  116. };
  117.  
  118. struct ftinfo {
  119.     char timerint;         /* Timer tick interrupt number */
  120.     char ticksecs;         /* Number of timer ticks per second */
  121.     char milltick;         /* Number of milliseconds per timer tick */
  122. };
  123.  
  124. struct fdata {
  125.     short fdsize;         /* Offset 0 (word) = Structure size */
  126.     char specver;         /*        2 (byte) = FOSSIL spec version */
  127.     char drvlvl;         /*        3 (byte) = Driver rev level */
  128.     char far *drvid;     /*        4 (dwrd) = Pointer to ASCII ID */
  129.     short rxsize;         /*        8 (word) = Input buffer size */
  130.     short rxavail;         /*       0A (word) = Bytes avail (input) */
  131.     short txsize;         /*       0C (word) = Output buffer size */
  132.     short txavail;         /*       0E (word) = Bytes avail (output) */
  133.     char scnwid;         /*       10 (byte) = Screen width, chars */
  134.     char scnlen;         /*       11 (byte) = Screen height, chars */
  135.     short bdmask;         /*       12 (word) = Baud rate mask */
  136.     char filler[2];
  137. };
  138.  
  139. /* ------------------------------------------------------------------------ */
  140. /*                          Function prototypes                             */
  141. /* ------------------------------------------------------------------------ */
  142. unsigned int finit      (unsigned int p, unsigned int b);
  143. unsigned int fputch     (unsigned int p, char c);
  144. unsigned int fgetch     (unsigned int p);
  145. unsigned int fstatus    (unsigned int p);
  146. unsigned int ffinit     (unsigned int p, unsigned int *f, char far *fb);
  147. void         fdeinit    (unsigned int p);
  148. void         fdtr       (unsigned int p, unsigned int d);
  149. unsigned int ftickparms (unsigned int *ms);
  150. void         fflushout  (unsigned int p);
  151. void         fpurgeout  (unsigned int p);
  152. void         fpurgein   (unsigned int p);
  153. unsigned int fpoke      (unsigned int p, char c);
  154. unsigned int fpeek      (unsigned int p);
  155. unsigned int fkbdpeek   (void);
  156. unsigned int fkbdgetch  (void);
  157. void         fflow      (unsigned int p, unsigned char m);
  158. unsigned int fcontrol   (unsigned int p, unsigned char m);
  159. void         fgotoxy    (unsigned int x, unsigned int y);
  160. unsigned int fwherexy   (unsigned int *x, unsigned int *y);
  161. void         fdispansi  (char c);
  162. void         fwatchdog  (unsigned int p, int f);
  163. void         fdispbios  (char c);
  164. unsigned int ftickchain (int a, void (far *func)());
  165. void         freboot    (unsigned int w);
  166. unsigned int fgetblk    (unsigned int p, void far *buf, unsigned int z);
  167. unsigned int fputblk    (unsigned int p, void far *buf, unsigned int z);
  168. void         fbreak     (unsigned int p, unsigned int f);
  169. unsigned int finfo      (unsigned int p, void far *buf, unsigned int z);
  170. unsigned int faddapp    (unsigned int p, unsigned int *c,
  171.              void (far *func)());
  172. unsigned int fdelapp    (unsigned int p, unsigned int *c,
  173.              void (far *func)());
  174.